//
//  hx711.h
//  electronic_scale
//
//  Copyright © 2019 Cyber SmartCar Lab. All rights reserved.
//

#ifndef hx711_h
#define hx711_h

#include "stm32f10x.h"	//ST公司v3.5版本使用的库函数头文件

//HX711端口定义
#define HX711_GPIO			GPIOA
#define HX711_GPIO_RCC		RCC_APB2Periph_GPIOA
#define HX711_SCK			GPIO_Pin_2
#define HX711_DOUT			GPIO_Pin_3


//数据线输入输出方向设置
#define DOUT_DIR_IN()  	{GPIOA->CRL&=0xFFFF0FFF;GPIOA->CRL|=8<<12;}	//PB3
#define DOUT_DIR_OUT() 	{GPIOA->CRL&=0xFFFF0FFF;GPIOA->CRL|=3<<12;}	//PB3

//HX711配置
#define HX711_DOUT_H()			GPIO_SetBits(HX711_GPIO,HX711_DOUT)
#define HX711_DOUT_L()			GPIO_ResetBits(HX711_GPIO,HX711_DOUT)
#define HX711_SCK_H()			GPIO_SetBits(HX711_GPIO,HX711_SCK)
#define HX711_SCK_L()			GPIO_ResetBits(HX711_GPIO,HX711_SCK)
#define READ_HX711_DOUT()		GPIO_ReadInputDataBit(HX711_GPIO,HX711_DOUT)

//定义延时
#include "tick_timer.h"
#define HX711_DELAY_US(t)		DelayUs(t)


void HX711Init(void); //HX711初始化
unsigned long HX711Read(void); //读HX711芯片输出的数据
unsigned long HX711ReadAvg(int times); //读HX711芯片输出的数据的平均值


#endif


